package main

import (
	"github.com/spf13/viper"
	"go.uber.org/zap"
	"logtransfer/es"
	"logtransfer/kafka"
	"logtransfer/logger"
	"logtransfer/settings"
)

/*
gitee:
https://gitee.com/super__man/logtransfer
*/

func main() {
	// 初始化配置文件
	err := settings.Init()
	if err != nil {
		println("初始化配置失败")
		return
	}
	// 初始化日志
	err = logger.Init()
	if err != nil {
		println("初始化日志失败")
		return
	}
	zap.L().Debug("日志初始化成功")

	// 获取es地址用户名密码
	// 初始化es
	urls := viper.GetString("es.server_addr")
	userName := viper.GetString("es.username")
	passWord := viper.GetString("es.password")
	chanSize := viper.GetInt("es.chansize")
	num := viper.GetInt("es.producernum")
	index := viper.GetString("es.index")
	err = es.Init(chanSize, num, urls, userName, passWord, index)
	if err != nil {
		zap.L().Error("es init failed, err = ", zap.Error(err))
		return
	}
	zap.L().Debug("es init success")

	// 获取kafka地址
	kafkaAddr := viper.GetString("kafka.server_addr")
	// 初始化 kafka消费者
	err = kafka.Init([]string{kafkaAddr})
	if err != nil {
		zap.L().Error("kafka初始化失败,err=", zap.Error(err))
		return
	}
	zap.L().Debug("kafka init success")

	topic := viper.GetString("es.index")
	go kafka.WatchData(topic)

	select {}
}
